{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "6a120475-23a6-4044-bb04-641be646f547",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c01ca146-859a-4e49-ba19-c2c7380003a4",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "e3137e48-5e01-4797-b29d-87b8f5d04b07",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[10, 20, 30, 10, 20, 30, 10, 20, 30]"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "[10, 20, 30] * 3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "21cec64b-68bd-4883-9a35-bb9ba8d212aa",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([30, 60, 90])"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.array([10, 20, 30]) * 3"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9a617021-7e3d-4ccb-aca9-4d713e1e2b84",
   "metadata": {},
   "source": [
    "### 一阶数组的访问方式"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "52db7c90-726a-4c52-af6c-1d2675318108",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "2fce1007-f543-4ed4-a8ed-b8a0299490cf",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([10, 20, 30, 40, 50, 60])"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x = np.array([10, 20, 30, 40, 50, 60])\n",
    "x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "3c303744-b854-4def-8db5-58e705129e53",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "09a9d8ef-40f0-406d-a77b-2b36cd7f0d87",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "10"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "b963c996-2ca9-474e-9e39-f156074d407e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "60"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x[-1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "3f4b1b0c-23d2-4086-98fd-d97e59af9f9b",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "df020361-a94d-4938-ac0e-69cf1bf27519",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([30, 40, 50])"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x[2:5]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "1a960f64-cd1a-48bb-affb-69ddc2cd0051",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([60, 50, 40, 30, 20, 10])"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x[::-1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "76e07b13-8a21-4347-bc89-2e838dc61cda",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "3850fe0c-c13a-409c-b3ed-d33eacce305f",
   "metadata": {},
   "source": [
    "### 花式下标访问"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "68023c89-416f-449f-8688-7da2a7883c49",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([10, 20, 30, 40, 50, 60])"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x = np.array([10, 20, 30, 40, 50, 60])\n",
    "x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "663ff0fb-4a53-455d-a298-ad16d8d4909e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([30, 40, 10])"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x[[2, 3, 0]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ce602e61-9854-4709-98b3-c9e999fd64e9",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "4d580e1a-d2ab-49bd-a7d4-924f697f79e6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([20])"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x = np.array([10, 20, 30, 40, 50, 60])\n",
    "x[[1]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "8fc59f03-8ae9-4f6a-b9df-6f78561e39a7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "20"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x[1]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bb1a88ea-07e6-4649-b373-f3e473c82396",
   "metadata": {},
   "source": [
    "## 布尔向量"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "00256150-7ca8-48ed-a4ef-d23215f7d8fe",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([10, 20, 30, 40, 50, 60])"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x = np.array([10, 20, 30, 40, 50, 60])\n",
    "x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "14a0e648-4b21-4e9d-b01b-a130107b0c47",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([False, False,  True,  True,  True,  True])"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x > 20"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "edc29c8d-a106-421b-9693-0ffcfe662f44",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ True,  True,  True,  True, False, False])"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x < 50"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "de581c91-1ec6-4e6f-a240-a02b783d2065",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([False, False,  True,  True, False, False])"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(x > 20) & (x < 50)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "ab825ffd-84d9-4b91-a54c-231eb35d7a23",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ True, False, False, False, False,  True])"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(x < 20) | (x > 50)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "e97b35d1-0e56-48b1-8641-11372c7234aa",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "b9c83516-668b-4d29-acc0-7b548d900088",
   "metadata": {},
   "outputs": [
    {
     "ename": "ValueError",
     "evalue": "The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mValueError\u001b[0m                                Traceback (most recent call last)",
      "Cell \u001b[0;32mIn[31], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m x \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m20\u001b[39m \u001b[38;5;241m&\u001b[39m x \u001b[38;5;241m<\u001b[39m \u001b[38;5;241m50\u001b[39m\n",
      "\u001b[0;31mValueError\u001b[0m: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()"
     ]
    }
   ],
   "source": [
    "x > 20 & x < 50"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "85b5116a-6c3a-42eb-b390-52b429f50d6c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ True,  True,  True,  True,  True,  True])"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x > 20 & (x < 50)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "687142a8-f866-4bdb-acf0-4709a5098362",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ True,  True,  True,  True,  True,  True])"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(x > 20) & x < 50"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "b457642d-7829-408f-9920-e2350533ffa9",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "f286fdb7-5890-4912-b8fc-2d10fbe4dc49",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([False, False,  True,  True, False, False])"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(x > 20) & (x < 50)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "cb05d8af-3919-4348-af72-f498d26a145d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([30, 40])"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x[(x > 20) & (x < 50)]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "98c31c1d-0e5f-487e-979a-4f592badaeb9",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "f7a2731d-49a0-412b-b7b6-907fd1cd49c7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1,  2,  3,  4,  5,  6],\n",
       "       [ 7,  8,  9, 10, 11, 12],\n",
       "       [13, 14, 15, 16, 17, 18],\n",
       "       [19, 20, 21, 22, 23, 24]])"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x = np.arange(1, 25).reshape(-1, 6)\n",
    "x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "id": "937c92aa-f707-4a25-82b9-b4269b105d53",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "()"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x[2, 3].shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "32071121-6b45-49d8-ba66-26c3f86acc48",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 4, 10, 16, 22])"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x[:, 3]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "id": "ebeef40d-75eb-441a-bffb-947dd585db41",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 4],\n",
       "       [10],\n",
       "       [16],\n",
       "       [22]])"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x[:, [3]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "b4444942-c698-45ae-97c1-9ee49aef902e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 4],\n",
       "       [10],\n",
       "       [16],\n",
       "       [22]])"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x[:, 3:4]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "74c49399-1516-4303-aa1e-7f46eff6de29",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 4],\n",
       "       [10]])"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x[:2, 3:4]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "e016b581-6180-4c16-b37d-bd9a8fe54b92",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1,  2,  3,  4,  5,  6],\n",
       "       [ 7,  8,  9, 10, 11, 12]])"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x[:2]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "id": "8769fa54-6ee1-474e-91ba-dd1aa04eb885",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1,  2,  3,  4,  5,  6],\n",
       "       [ 7,  8,  9, 10, 11, 12]])"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x[:2, :]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "72892a4e-2cab-4f3b-9288-5911e0dc1dd6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([13, 14, 15, 16, 17, 18])"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x[2, :]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "id": "c140a531-84cf-45c6-9204-0f14275f9226",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([13, 14, 15, 16, 17, 18])"
      ]
     },
     "execution_count": 55,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x[2]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "id": "d280b9a5-523e-4299-8f7b-eb0e1d9896cd",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[13, 14, 15, 16, 17, 18]])"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x[[2]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ee7d5a9a-ecd7-465b-9d1a-5add155af765",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "id": "83e38016-5037-4577-82f3-a2a2aca7f383",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1,  2,  3],\n",
       "       [ 7,  8,  9],\n",
       "       [13, 14, 15]])"
      ]
     },
     "execution_count": 60,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x[0:3, :3]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "e875cbec-9978-42f0-bdc4-2ecf6de595b5",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "id": "08dd5ada-cfcc-4593-97e0-85af01480e14",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[24, 23, 22, 21, 20, 19],\n",
       "       [18, 17, 16, 15, 14, 13],\n",
       "       [12, 11, 10,  9,  8,  7],\n",
       "       [ 6,  5,  4,  3,  2,  1]])"
      ]
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x[::-1, ::-1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "0f9a0ccc-dcb5-452e-b249-ef08c8b706de",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1,  2,  3,  4,  5,  6],\n",
       "       [ 7,  8,  9, 10, 11, 12],\n",
       "       [13, 14, 15, 16, 17, 18],\n",
       "       [19, 20, 21, 22, 23, 24]])"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "id": "b21f916b-608c-433d-8159-8cb1c5afd463",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[False, False, False,  True, False, False],\n",
       "       [False,  True, False, False, False,  True],\n",
       "       [False, False, False,  True, False, False],\n",
       "       [False,  True, False, False, False,  True]])"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x % 4 == 0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "588f3664-098d-4022-86a2-19546dca1537",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 4,  8, 12, 16, 20, 24])"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x[x % 4 == 0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "3c399e3c-c0d9-4718-a64b-944e0cf45f6a",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "cfd8108d-33fa-4922-8ae1-7e731a0d915f",
   "metadata": {},
   "source": [
    "## 索引赋值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "id": "4443da5b-27c6-447c-831e-04e500d62cac",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0,  0,  0,  4,  5,  6],\n",
       "       [ 0,  0,  0, 10, 11, 12],\n",
       "       [ 0,  0,  0, 16, 17, 18],\n",
       "       [19, 20, 21, 22, 23, 24]])"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x = np.arange(1, 25).reshape(-1, 6)\n",
    "x[0:3, 0:3] = 0\n",
    "x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "7e6c6f84-3f3f-46c5-99ba-49f8152f18e7",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "id": "886d24b8-c460-42eb-b62c-0b79eb089fb6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0,  0,  0,  0,  0,  0],\n",
       "       [ 0,  0,  0,  0,  0,  0],\n",
       "       [13, 14, 15, 16, 17, 18],\n",
       "       [19, 20, 21, 22, 23, 24]])"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x = np.arange(1, 25).reshape(-1, 6)\n",
    "x[x <= 12] = 0\n",
    "x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "id": "6248a817-1807-4dde-9b03-ea62dc4be6d2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1,  2,  3,  0,  5,  6],\n",
       "       [ 7,  0,  9, 10, 11,  0],\n",
       "       [13, 14, 15,  0, 17, 18],\n",
       "       [19,  0, 21, 22, 23,  0]])"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x = np.arange(1, 25).reshape(-1, 6)\n",
    "x[x % 4 == 0] = 0\n",
    "x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "b5a12c58-3ce3-4729-9cc6-b7ca8fbfe24c",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
